<?php
class Admin_Form_ThemNguoiDungForm extends Zend_Form{
	public function __construct($user_id = null) {
        parent::__construct($user_id);
        
		$this->setName('nguoidung');
		
		$tennguoidung = new Zend_Form_Element_Text('tennguoidung');
		$tennguoidung->setLabel('Họ tên người dùng:')
					 ->setRequired(true)
					 ->addValidator('NotEmpty',true);
		$tennguoidung->getValidator('NotEmpty')->setMessage('Tên người dùng không được bỏ trống!');
				
		$email = new Zend_Form_Element_Text('email');
		$email->setLabel('Email')
			  ->setRequired(true)
			  ->addFilters(array('HTMLEntities','StringTrim','StringToLower'))
			  ->addValidator('NotEmpty',true)
			  ->addValidator('EmailAddress',true);
			  $email->getValidator('NotEmpty')->setMessage('Email không được bỏ trống!');
			  $email->getValidator('EmailAddress')->setMessage('Email không hợp lệ !');
		if($user_id == null){
		$email->addValidator('Db_NoRecordExists',true, array(
				'table' => 'tbl_nguoidung',
				'field' => 'Email'
		));
		}	else {			
			$email->addValidator('Db_NoRecordExists',true, array(
					'table' => 'tbl_nguoidung',
					'field' => 'Email',
					'exclude' => array(
							'field' => 'MaND',
							'value' => $user_id)
			));			
		}
				
		$email->getValidator('Db_NoRecordExists')->setMessage('Email đã tồn tại!');
		
		$tendangnhap = new Zend_Form_Element_Text('tendangnhap');
		$tendangnhap->setLabel('Tên đăng nhập:')
					->setRequired(true)
					->addValidator('alnum')
					->addValidator('StringLength',false,array(8))
					->addFilter('StringTrim');
		$tendangnhap->getValidator('alnum')->setMessage('Tên đăng nhập phải là chữ cái hoặc số !');
		$tendangnhap->getValidator('StringLength')->setMessage('Tên đăng nhập phải lớn hơn hoặc bằng 8 kí tự !');
		if($user_id == null){
		$tendangnhap->addValidator('Db_NoRecordExists',true, array(
				'table' => 'tbl_nguoidung',
				'field' => 'TenDangNhap'
		));
		} else {
			$tendangnhap->addValidator('Db_NoRecordExists',true, array(
					'table' => 'tbl_nguoidung',
					'field' => 'TenDangNhap',
					'exclude' => array(
							'field' => 'MaND',
							'value' => $user_id)
			));
		}
		$tendangnhap->getValidator('Db_NoRecordExists')->setMessage('Tên đăng nhập đã tồn tại!');
		$matkhau = new Zend_Form_Element_Password('matkhau');
		$matkhau->setLabel('Mật khẩu:')
				->setRequired(true)
				->addValidator('StringLength',false,array(6))
				->addFilter('StringTrim');
		$matkhau->getValidator('StringLength')->setMessage('Mật khẩu phải lớn hơn hoặc bằng 6 ký tự!');
		
		$xacnhanmatkhau = new Zend_Form_Element_Password('xacnhanmatkhau');
		$xacnhanmatkhau->setLabel('Xác nhận mật khẩu:')
					   ->setRequired(true)
					   ->addValidator('Identical', false, 'matkhau');
		$xacnhanmatkhau->getValidator('Identical')->setMessage('Mật khẩu xác nhận không đúng!');
		
		$khoa = new Zend_Form_Element_Radio('khoa');
		$khoa->setLabel('Khóa:')
			 ->setRequired(true);
		$khoa->setMultiOptions(array(
					'1' => 'Khóa',
				'0' => 'Không'));
				
		$quyenhan = new Zend_Form_Element_Select('quyenhan');
		$quyenhan->setLabel('Quyền hạn:')
				 ->setRequired(true);
		$quyenhan->setMultiOptions(array(
				'user' => 'Thành viên',
				'admin' => 'Quản trị'
				));

		$this->addElements(array($tennguoidung,$email,$tendangnhap,$matkhau,$xacnhanmatkhau,$khoa,$quyenhan));
	}
}